AWS Lambda
https://gyazo.com/9c319fa75be36fc91d4b369840739aac
イベントに反応してバックエンドコードをコンテナ内で実行するコンピューティングサービス.
イベント数に応じてAutoScalingする.
フロントのアプリケーションからAmazon_API_Gateway経由で呼び出すことができる.
ブラウザが特定のイベントをトリガーにAmazon_API_GatewayのエンドポイントにHTTPSリクエストを送信.
Amazon API GatewayがAWS_Lambdaを起動.
AWS_Lambdaは(Amazon_DynamoDBから読み込みなど)処理を行いJSONをAmazon API Gatewayに返す.
Amazon API GatewayがブラウザにHTTPレスポンスを返す.
ブラウザがレスポンスを元にレンダリングを行う.
データ整形・変換
ブラウザが画像をS3バケットにアップロード
アップロードをトリガーとしてAWS_Lambdaが起動する.
AWS_LambdaがS3バケットから画像を取得,サムネイルを作成する.
定期的な処理
Amazon_CloudWatchが定期的にAWS_Lambdaを起動する.
Amazon_EC2でcron処理していた部分はAWS_Lambdaにオフロードできる.
コスト,実行時間で有利.
以下のプログラミング言語をサポートしている.
Java
C#
Go
Python
PowerShell
Ruby
Node.js
リクエストとコード実行時間でコストが定まる.
Amazon RDSとの組み合わせは一般にアンチパターンであるとされている.
AWS_Lambdaはイベントやリクエストのたびにコンテナを起動しコネクションを貼るため,同時接続数に限りがあるRDBMSとは相性が悪い.
RDS Proxyの登場でコネクションプールをコンテナ間で共有できるようになったが,これを利用するためのコストのオーバーヘッドがある.